1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to programmable interrupt controllers for use within data processing systems.
2. Description of the Prior Art
It is known to provide interrupt controllers which serve to receive interrupt signals from peripheral devices and arbitrate between these signals to determine which of the interrupt signals should be used to trigger associated interrupt driven processing. Arbitration may be required between interrupts which occur at the same time and/or arbitration may be used to allow one interrupt to pre-empt processing that is already being performed in response to an earlier interrupt. Priority values which may be programmed are associated with the different interrupts to manage the prioritisation between interrupt signals which arise.
It is known to use operating systems to program the priority values associated with different interrupts within an interrupt controller. This provides flexibility in the prioritisation associated with different interrupts. It would be normal for an operating system to control the priority values such that an interrupt signal associated with a high priority event would be given a high priority value. Thus, it would be preferred over a simultaneous interrupt of a lower priority or would be able to pre-empt existing processing which was associated with a lower priority interrupt.
A problem arises when additional capability is added to the system as a whole and to the interrupt handler in particular. As systems develop in functionality and complexity it is desirable to provide additional functionality in the interrupt controller. However, there is a legacy code base which it is desirable to still be able to support. Software and systems developed with earlier interrupt controllers should still be capable of using more advanced and more capable interrupt controllers, i.e. backwards compatibility is strongly desirable.